#ifndef CHOOSEFRIENDSDIALOG_H
#define CHOOSEFRIENDSDIALOG_H
#include<QHBoxLayout>
#include <QDialog>
#include <QWidget>
#include<QCheckBox>
#include<QLabel>
#include<QIcon>
//////////////////
//可供选择的一个好友元素（单选框+头像+名字）
class choosefriendsdialog;
class choosefriendItem:public QWidget
{
    Q_OBJECT
public:
    choosefriendItem(choosefriendsdialog*owner, const QString&userId, const QIcon& avatar, const QString& name, bool checked);

    void paintEvent(QPaintEvent* event) override;
    void enterEvent(QEnterEvent* event) override;
    void leaveEvent(QEvent* event) override;

    const QString& getUserId() const {
        return userId;
    }

    QCheckBox* getCheckBox() {
        return checkBox;
    }

private:
    bool isHover = false;

    QCheckBox* checkBox;
    QPushButton* avatarBtn;
    QLabel* nameLabel;
    choosefriendsdialog* owner;			// 记录了哪个 QWidget 持有了这个 Item. 此处的 QWidget 应该是一个 ChooseFriendDialog

    QString userId;   					// 记录了当前 Item 对应的 userId 是啥.
};

//////////////////
//...里面的添加好友按钮的跳转
/////////////////
class choosefriendsdialog : public QDialog
{
    Q_OBJECT
public:
    choosefriendsdialog(QWidget* parent, const QString& userId);

    void initleft(QHBoxLayout* layout);
    void initright(QHBoxLayout* layout);
    void addFriend(const QString& userId, const QIcon& avatar, const QString& name, bool checked);
    void addSelectedFriend(const QString& userId, const QIcon& avatar, const QString& name);
    void deleteSelectedFriend(const QString& userId);
private:
         // 保存左侧全部好友列表的 QWidget
    QWidget* totalContainer;
    // 保存右侧选中好友列表的 QWidget
    QWidget* selectedContainer;

    // 当前选择窗口是点击哪个用户来弹出的.
    QString userId;

};

#endif // CHOOSEFRIENDSDIALOG_H











